import 'package:film/service/api_service.dart';
import 'package:flutter/material.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:get/get.dart';

// 定义一个统计项模型
class StatItem {
  final String count; // 数量
  final String label; // 标签文本
  final VoidCallback onTap; // 点击事件

  StatItem({required this.count, required this.label, required this.onTap});
}

class MineController extends GetxController {
  DioService dioService = new DioService();
  // --- 状态数据 ---
  final String avatarAsset = "assets/icons/totoro_avatar.png"; // 头像资源路径
  final RxString loginStatusText = "登录/注册".obs; // 登录状态文本, 使用 .obs 使其可响应

  // 顶部统计数据列表
  late final List<StatItem> topStats;

  @override
  void onInit() {
    super.onInit();
    _initData();
  }

  void _initData() async {
    // 初始化顶部统计数据
    topStats = [
      StatItem(count: "0", label: "播放记录", onTap: () => _handleStatTap("播放记录")),
      StatItem(count: "0", label: "浏览历史", onTap: () => _handleStatTap("浏览历史")),
      StatItem(count: "0", label: "我的追番", onTap: () => _handleStatTap("我的追剧")),
    ];
  }

  // --- 事件处理方法 ---

  // 处理登录/注册点击
  void handleLoginRegisterTap() {
    Get.toNamed('/member');
  }

  // 处理顶部统计项点击
  void _handleStatTap(String label) {
    Get.snackbar("提示", "点击了: $label", snackPosition: SnackPosition.BOTTOM);
    // 根据label执行不同操作
  }

  // 处理操作项点击
  void handleActionTap() async {
    try {
      final cacheManager = DefaultCacheManager();
      await cacheManager.emptyCache();
      Get.snackbar(
        "成功",
        "清除缓存成功",
        duration: Duration(seconds: 1),
      );
    } catch (e) {
      Get.snackbar(
        "错误",
        "清除缓存失败: ${e.toString()}",
        duration: Duration(seconds: 1),
      );
    }
  }
}
